home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / netbsd / contrib / x11 / x11r6 / bin10 / xdaniver-1.01.readme < prev    next >
Text File  |  1995-10-23  |  10KB  |  220 lines

  1. Descr:     Fast X11R6-server for ECS & AGA.
  2.  
  3. What is it?
  4. -----------
  5.  
  6. Xdaniver is a fast, colour X11R6 server for the Amiga's custom chip set
  7. under NetBSD 1.0 and NetBSD-current, supporting all the Amiga's display
  8. depths from 1 to 4 (upto 16 colours) on ECS machines and 1 to 8 (upto 256
  9. colours) on AGA machines (though, not all resolutions are available, see
  10. General Information below).
  11.  
  12. Xdaniver is designed to be a drop-in replacement for the Xmono server provided
  13. with the X11R6 binary distribution supplied by Bernd Ernesti available from
  14. ftp.uni-regensburg.de or one of its mirrors.
  15.  
  16. Unlike previous colour X servers for the Amiga that emulate a chunky pixel
  17. screen in fast RAM, use the standard frame buffer drivers provided with the
  18. X11R6 source code to draw and then use a chunky to planar conversion routine
  19. to write the results to the screen (all very slow), Xdaniver uses a heavily
  20. modified mono frame buffer driver to draw directly using the Amiga's planar
  21. format. The net result is much faster drawing and support for all the Amiga's
  22. custom display depths but, as usual, the fewer planes used, the faster the
  23. drawing operations of the X server. Even so, on my A1200 with a 33Mhz 68030,
  24. I'm getting reasonable performance when using 8 bit planes in Dbl NTSC mode.
  25.  
  26. Installation
  27. ------------
  28.  
  29. You will need to have first obtained and installed the X11R6 binary
  30. distribution available from ftp.uni-regensburg.de in
  31. /pub/NetBSD-Amiga/contrib/X11 or one of its mirrors.  Xdaniver has been
  32. compiled to expect font and configuration files sitting under
  33. /usr/local/X11R6, if your setup is different you will need to provide a
  34. symbolic link from /usr/local/X11R6 to where your tree resides or supply
  35. several command line flags to the server.
  36.  
  37. To get Xdaniver running as the default X server, copy the uncompressed binary
  38. into /usr/local/X11R6/bin, remove the current X file from that directory
  39. (which is a symbolic link to Xmono) and replace it with a link to Xdaniver:
  40.  
  41.     gzip -d < X11R6.Xdaniver.1.01.tar.gz | tar xvf -
  42.     mv Xdaniver /usr/local/X11R6/bin
  43.     cd /usr/local/X11R6/bin
  44.     rm X
  45.     ln -s Xdaniver X
  46.  
  47. Note that on some setups, the devices /dev/kbd, /dev/mouse and /dev/view??
  48. have been created to be accessable only by superuser; Xdaniver needs to open
  49. these devices. To workaround this problem, log on as superuser and then
  50. either make Xdaniver setuid root:
  51.  
  52.     chown root Xdaniver
  53.     chmod 4755 Xdaniver
  54.  
  55. or give everyone access the devices:
  56.  
  57.     chmod 666 /dev/kbd /dev/mouse /dev/view??
  58.  
  59. the latter option is a possible cause of a security hole if your machine is
  60. ever used multi-user.
  61.  
  62. General Information
  63. -------------------
  64.  
  65. The default resolution of the server is 700x430 and the default depth 4. AGA
  66. users might what to increase the display depth by editing the startx script
  67. and providing a -depth <depth> argument to Xdaniver on the xinit line of the
  68. script. As always, the lower the depth, the faster the drawing and window
  69. manipulation of the server.
  70.  
  71. The resolution can be altered similarly by suppling -width <width> and
  72. -height <height> arguments to the server.
  73.  
  74. The NetBSD kernel selects actual screen modes by picking a mode who's
  75. natural, non-overscanned size best-fits the requested resolution.
  76. Unfortunately, for AGA users, the 1.0 kernel only has support for the
  77. Dbl-NTSC AGA display mode and only this mode has support for depths greater
  78. than 4. The NetBSD-current (work-in-progress) kernel also has support for
  79. Dbl-PAL but still no support for the Super72 or other super-hires modes
  80. (perhaps some kind, kernel-hacker could add support for them ?).
  81.  
  82. If you have a 2 button mouse (like me) you might want to try and use the 3
  83. button mouse emulation. On other systems, it is usual for the left and right
  84. buttons to be provided and emulate the middle button by pressing both
  85. buttons together, however, the middle button is tends to be used more than
  86. the right button so I have provided two options:
  87.  
  88. -emulateright (or -3), the two physical mouse buttons act as left and middle
  89. and pressing them both together emulates the right button.
  90.  
  91. -emulatemiddle (or -2), the two physical mouse buttons act as left and right
  92. and pressing them both together emulated the middle button.
  93.  
  94. When using screen depths of less than 6 (4 is the maximum for ECS machines)
  95. the lack of possible colours on screen at once causes problems for many X
  96. applications.  Specifying -cc 2 as a command line argument to Xdaniver
  97. causes the server to switch the default visual type from PsuedoColor to
  98. StaticColor; to put it simply, the server prefills the colormap with a
  99. selection of 16 colours (depth 4) and when an application asks for a
  100. particular colour, its gets allocated one that is closest to one from the
  101. selection of 16. This removes the 'WARNING: Cannot allocate colormap entry
  102. for "XXX"' errors but at the expense of applications not being able to get
  103. the precise colour they wanted. Also, some badly written X applications fail
  104. altogether when presented with a StaticColor visual.
  105.  
  106. Bugs/Limitations
  107. ----------------
  108.  
  109. The limited choice of display resolutions for AGA/ECS machines is a real
  110. pain - requires a kernel change to fix. Worse still, the kernel specifies
  111. the maximum overscan resolution on the Dbl-NTSC to be 724x482 but selecting
  112. anything more than 702x430 on my machine causes the screen either sheer
  113. diagonally (as if the bytes per row calculation in Xdaniver or the kernel is
  114. wrong) or completely loose sync (suggesting a custom chip register sync
  115. calculation bug). As other, non-aga modes aren't affected when selection
  116. overscan both problems seem to point to a kernel driver bug. Also, depths
  117. greater than 4 for AGA users are only supported by the kernel in the Dbl-NTSC
  118. mode (and Dbl-PAL with the current-NetBSD kernel).
  119.  
  120. I know of one bug so-far (there will be more), The PutImage request of an XY
  121. format image expects the bitplane order to be the reverse of that specified
  122. in the X protocol but since virtually all applications use the Z (chunky)
  123. format, you are unlikely to come across this problem.
  124.  
  125. The PutImage request of Z format images is a little slow - when I have time
  126. I'll try and add one of the fast assembly chunky-to-planar routines developed
  127. for doom style games/demos. Unfortunately, the current crop all require a
  128. picture size that is a multiple of 32 pixels and so cannot be used out-of-the-
  129. box.
  130.  
  131. Some extra performance could easily be squeezed out of the terminal font
  132. drawing code (used by xterm) - when I have time I'll add the code.
  133.  
  134. The Amiga's blitter and sprites are totally unused and will remain so
  135. until/if someone else adds support to the kernel. The blitter would help
  136. speed up screen scrolling and window manipulation and sprite support could
  137. be used for the X pointer shape (if small enough) which would speed up all
  138. drawing operations (no need to remove the software based pointer shape
  139. first, draw, then replace the pointer shape).
  140.  
  141. I removed the X image extension (XIE) from the X server as it increased the
  142. size of the binary by some 400k. I haven't come across any applications that
  143. need it yet (I haven't been looking!) so if you need the extension for some
  144. reason send me e-mail and I'll build a server with the extension included.
  145.  
  146. The 3 button mouse emulation is very simple - to emulate the 3rd button you
  147. have to press both button precisely at the same moment - I've got quite good
  148. at it now. When I have some spare time I'll add a timer so you will have a
  149. few milli-seconds between one button being pressed and the next and it still
  150. being registered as the emulated button.
  151.  
  152. AGA users don't forget to provide the -A flag to loadbsd to enable the one
  153. AGA mode in the 1.0 kernel but only if you have a VGA, multisync or dual-scan
  154. monitor, of course !
  155.  
  156. Xdaniver has been tested on:
  157.  
  158. A1200, 33Mhz 68030, 8Mb RAM and NetBSD 1.0 by myself.
  159. A4000/40, 12Mb RAM and NetBSD 1.0 by Andreas Holzhammer.
  160. A3000, 12Mb RAM and NetBSD 1.0 by Charlie Root, Stuart Park and others.
  161. A3000, 25Mhz 68040, 18Mb RAM and NetBSD-current by Michael K. Sanders.
  162. A2000, 8Mb RAM and NetBSD (version unknown) by Hubert Feyrer.
  163.  
  164. Release and Bug Fix History
  165. ---------------------------
  166.  
  167. 1.0    - First release
  168.  
  169. 1.01    Bugs fixed:
  170.     - Narrow (<32 pixels) Z format GetImage requests corrupted the stack
  171.       and could cause the server to core dump. (Xpaint caused this problem)
  172.     - Drawing dots (PolyPoint request) into a clipped window caused a
  173.       c pointer to go out of range, causing a core dump (xv showed this
  174.       problem).
  175.  
  176.     New features:
  177.     - Simple 3 button mouse emulation using a 2 button mouse; specify
  178.      -emulate_middle (or -2) or -emulate_right (or -3) on the server's
  179.      command line and press both mouse buttons together emulate the 'missing'
  180.      button.
  181.     - Basic beep sound support added by sending bell characters to the
  182.       console.
  183.     - Source code released.
  184.  
  185. Disclaimer and Copyright Notices
  186. --------------------------------
  187.  
  188. Multi-depth planar frame buffer code:
  189. Copyright (c) 1995 by Daniver Limited.
  190.  
  191. Large portions:
  192. Copyright (c) 1994 by Eduardo Horvath.
  193. Copyright (c) 1987-1995 by the Regents of the University of California.
  194. Copyright (c) 1987 by Sun Microsystems, Inc. Mountain View, CA.
  195. Copyright (c) 1987-1995 by X Consortium.
  196. Copyright (c) 1987, 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
  197. Copyright (c) 1989 Network Computing Devices, Inc., Mountain View, California.
  198.  
  199. Permission to use, copy, modify, and distribute this software and its
  200. documentation for any purpose and without fee is hereby granted, provided
  201. that the above copyright notice appear in all copies.  The Daniver Limited,
  202. the above companies and individuals makes no representations about the
  203. suitability of this software for any purpose.  It is provided "as is" without
  204. express or implied warranty.
  205.  
  206. Credits
  207. -------
  208.  
  209. Thanks to Bernd Ernesti for making the operating system server source code
  210. available for others to use and Eduardo Horvath and Andy Heffernan, who (I
  211. think) did the original Xmono server port.
  212.  
  213. Also, many thanks to the first brave users who tested Xdaniver for me on other
  214. Amiga setups and found a few bugs in the process.
  215.  
  216. Gary Henderson.
  217.  
  218. Daytime: garyh@wet.sbi.com
  219. Home: gary@daniver.demon.co.uk
  220.